Skip to content

fix: keep database comparison output ephemeral by default - #78

Merged
shaug merged 1 commit into
mainfrom
scott/issue-69-ephemeral-db-output
Jul 28, 2026
Merged

fix: keep database comparison output ephemeral by default#78
shaug merged 1 commit into
mainfrom
scott/issue-69-ephemeral-db-output

Conversation

@shaug

@shaug shaug commented Jul 28, 2026

Copy link
Copy Markdown
Owner

TL;DR

Database comparisons now remove permission-restricted raw output by default while preserving explicit, auditable retention and exact comparison behavior.

Summary

  • Capture source and reconstructed-chain command stdout in an owner-only
    temporary workspace that is removed on success, difference detection,
    command or diff failure, interruption, and restoration paths
  • Add explicit --keep-output-dir PATH retention while preserving
    --out-dir PATH as an intentional legacy alias; retained raw files use
    owner-only permissions and report their resolved paths
  • Bound command and difference diagnostics without transforming equality
    inputs or changing exact argv execution
  • Preserve checkout restoration, temporary-branch cleanup, ignored
    recordkeeping, and clean-tree guarantees with focused regression coverage

Validation

  • just format
  • just lint
  • just test — 521 tests passed
  • Focused database comparison tests — 10 passed
  • Focused CLI integration tests — 9 passed
  • Repository-owned review-code-change — clean at
    2f13a2d6c27fda2ced66558460a72c11c4d43c26

Acceptance

All issue-authored acceptance criteria are pre-merge and pass on the published
candidate. No deployment or post-merge environment check is required.

Tickets

Fixes #69

## Summary

- Capture database comparison output in a restricted temporary workspace by
  default and remove it on every exit path
- Retain exact raw output only through an explicit, permission-restricted
  destination while preserving the legacy `--out-dir` spelling as an opt-in
- Bound command and diff diagnostics and cover success, difference, failure,
  interruption, restoration, permissions, and ignored-state behavior

## Why

- Avoid persistently storing potentially sensitive schema and operational
  output during ordinary comparisons
- Preserve exact argv execution, comparison semantics, and intentional
  debugging workflows
@shaug
shaug merged commit 0511570 into main Jul 28, 2026
1 check passed
@shaug
shaug deleted the scott/issue-69-ephemeral-db-output branch July 28, 2026 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Keep carve-changesets database comparison output ephemeral by default

1 participant